<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <title>instanceof原理</title>
</head>

<body>
    <script>
        function myInstanceof(left, right) {
            // 获取左侧left原型
            var proto = Object.getPrototypeOf(left);
            // 获取右侧right的prototype 对象
            var prototype = right.prototype;
            // 判断构造函数的 prototype 对象是否在对象的原型链上
            while (true) {
                if (!proto) return false;
                if (proto === prototype) return true;
                // 如果没有找到，就继续从其原型上找，Object.getPrototypeOf方法用来获取指定对象的原型
                proto = Object.getPrototypeOf(proto);
            }
        }
        console.log(myInstanceof('1', String));
    </script>
</body>

</html>